#!/bin/bash

# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
NC='\033[0m' # No Color

# 服务名称
SERVICE_NAME="media_service"

# 显示帮助信息
show_help() {
    echo -e "${YELLOW}媒体信息处理服务管理脚本${NC}"
    echo "用法: $0 [命令]"
    echo ""
    echo "命令:"
    echo "  start    - 启动服务"
    echo "  stop     - 停止服务"
    echo "  restart  - 重启服务"
    echo "  status   - 查看服务状态"
    echo "  log      - 查看服务日志"
    echo "  log-live - 实时查看服务日志"
    echo "  help     - 显示此帮助信息"
}

# 检查是否为root用户
check_root() {
    if [ "$(id -u)" -ne 0 ]; then
        echo -e "${RED}错误: 此命令需要root权限。请使用sudo运行。${NC}"
        exit 1
    fi
}

# 主函数
main() {
    case "$1" in
        start)
            check_root
            echo -e "${YELLOW}正在启动服务...${NC}"
            systemctl start $SERVICE_NAME
            if [ $? -eq 0 ]; then
                echo -e "${GREEN}服务已启动。${NC}"
            else
                echo -e "${RED}启动服务失败。${NC}"
            fi
            ;;
        stop)
            check_root
            echo -e "${YELLOW}正在停止服务...${NC}"
            systemctl stop $SERVICE_NAME
            if [ $? -eq 0 ]; then
                echo -e "${GREEN}服务已停止。${NC}"
            else
                echo -e "${RED}停止服务失败。${NC}"
            fi
            ;;
        restart)
            check_root
            echo -e "${YELLOW}正在重启服务...${NC}"
            systemctl restart $SERVICE_NAME
            if [ $? -eq 0 ]; then
                echo -e "${GREEN}服务已重启。${NC}"
            else
                echo -e "${RED}重启服务失败。${NC}"
            fi
            ;;
        status)
            systemctl status $SERVICE_NAME
            ;;
        log)
            journalctl -u $SERVICE_NAME
            ;;
        log-live)
            echo -e "${YELLOW}正在实时显示日志，按Ctrl+C退出...${NC}"
            journalctl -u $SERVICE_NAME -f
            ;;
        help|*)
            show_help
            ;;
    esac
}

# 如果没有参数，显示帮助
if [ $# -eq 0 ]; then
    show_help
    exit 0
fi

# 执行主函数
main "$1"